<?php
function stripExt($file) {
  return preg_replace('#\.[^.]*$#', '', $file);
}
function linkmaker($mod) {
  return "index.php?mod=".stripExt($mod);
}
/**
array createFileList (string $dir[, array $exceptionfiles])
  Gibt eine Liste zurueck, die alle Dateien
  des angegebenen Verzeichnisses $dir, aber nicht
  die angegeben Ausnahmen aus $exceptionfiles
  enthaelt.

  $dir: 
    Ordner, dessen Dateien zurueckgegeben sollen
  $exceptionfiles:
    Dateien, die nicht zurueckgegeben werden sollen
*/
function createFileList($dir, $exceptionfiles = array("index.html"))
{
  // Abbrechen, falls die Datei/Ordner nicht existiert oder es kein Ordner ist
  if(!file_exists($dir) || !is_dir($dir)) {
    return array();
  }
  // In dieser Variable werden die Dateinamen gespeichert
  $li = array();
  
  // Oeffne Verzeichnis zum Lesen
  $hd = opendir($dir);
  
  // Lese das Verzeichnis aus
  while($fi = readdir($hd)) {
    // Pruefe auf:
    //   - . (stellt aktuelles Verzeichnis dar)
    //   - .. (uebergeordnetes Verzeichnis)
    //   - is_file (ist es ueberhaupt eine Datei?)
    //   - in_array (kommt der Dateinamen in der Liste der Dateien vor, die
    //               die nicht zurueckgegeben werden sollen)
    if($fi!="." && $fi!=".." && is_file($dir.$fi) && !in_array($fi, $exceptionfiles)) {
      // Fuege den Dateinamen der Liste hinzu
      $li[] = $fi;
    }
  }
  
  // Schliesse das Verzeichnis
  closedir($hd);
  
  // Gebe Dateiliste zurueck
  return $li;
}

// Exakt dasselbe was createFileList macht, ...
// ... nur mit Ordnern
function createFolderList($dir)
{
  if(!file_exists($dir) || !is_dir($dir)) {
    return array();
  }
  
  $li = array();
  $hd = opendir($dir);
  while($fi = readdir($hd)) {
    if($fi!="." && $fi!=".." && is_dir($dir.$fi)) {
      $li[] = $fi;
    }
  }
  closedir($hd);
  return $li;
}

// Holt die Dateiendung aus einem Dateinamen
function extractFileTyp($t) {
  // Teile die Datei an dem Separator "."
  $t = explode(".", $t);
  
  // Gebe das Letzte Element von $t zurueck (entspricht dem Teil nach dem letzten Punkt)
  return $t[count($t)-1];
}

/*
string formFileSize (int $Groesse, int $decimals = 0)
  Gibt eine "formatierte" Dateigroesse von $Groesse
  mit der Nachkommastellengenauigkeit $decimals zurueck.
  
  $Groesse:
    Uebergebene Dateigroesse (soll umgewandelt werden)
  $decimals:
    Genauigkeit der zurueckzugebenden Dateigroesse
    
   von: webmaster-resource.de
*/
function formFileSize($Groesse, $decimals = 0)
{
  if($Groesse < 1000) {
    return number_format($Groesse, $decimals, ",", ".")." Bytes";
  } elseif($Groesse < 1000000) {
    return number_format($Groesse/1024, $decimals, ",", ".")." kB";
  } else {
    return number_format($Groesse/1048576, $decimals, ",", ".")." MB";
  }
}

/**
Wandelt PHP-Ini-Werte um

   von: webmaster-resource.de
*/
function PHPIniSize($Groesse)
{
  $Werte['MB'] = 1048576;
  $Werte['Mb'] = 1048576;
  $Werte['M'] = 1048576;
  $Werte['m'] = 1048576;
  $Werte['KB'] = 1024;
  $Werte['Kb'] = 1024;
  $Werte['K'] = 1024;
  $Werte['k'] = 1024;

  while(list($Schluessel) = each($Werte))
  {
    if((strlen($Groesse) > strlen($Schluessel)) && (substr($Groesse, strlen($Groesse)-strlen($Schluessel)) == $Schluessel)) {
      $Groesse = substr($Groesse, 0, strlen($Groesse)-strlen($Schluessel))*$Werte[$Schluessel];
      break;
    }
  }
  return $Groesse;
}

function sessionSet($name, $value)
{
  $_SESSION[CMBASIC][$name] = $value;
}

function sessionGet($name)
{
  return $_SESSION[CMBASIC][$name];
}
?>